Reproduction device, reproduction method, reproduction program, and recording medium

ABSTRACT

With a reproduction-only disc having a large recording capacity, an interactive function having a higher degree of freedom than the related art can be easily accomplished. A virtual player model corresponding to a function of a player is created and described in Java. BDBasicPlayer  210  detects a user input and the status change of the player and generates an event. An object  211  that implements a listener interface registers an event listener corresponding to an event that the object  211  is caused to receive to BDBasicPlayer  210  before the event takes place. When the event becomes unnecessary, it is unregistered. BDBasicPlayer  210  transmits the event to the object  211  in which the event listener has been registered. The object  211  executes a method corresponding to the received event. The relationships between events and methods can be flexibly set. Thus, a complicated interactive function can be easily accomplished.

TECHNICAL FIELD

The present invention relates to a reproducing apparatus, a reproducingmethod, a reproducing program, and a recording medium that allow theuser to interactively operate a program recorded on a large capacitytype recording medium such as the Blu-ray Disc.

BACKGROUND ART

In recent years, as a standard for a disc type recording medium that isrecordable and detachable from a recording and reproducing apparatus,the Blu-ray Disc standard has been proposed. The Blu-ray Disc standardprescribes a disc that has a recording medium having a diameter of 12 cmand a cover layer having a thickness of 0.1 mm. The Blu-ray Discstandard uses as optical systems a bluish-purple laser having awavelength of 405 nm and an objective lens having a numerical apertureof 0.85. The Blu-ray Disc standard accomplishes a recording capacity of27 GB (Giga bytes) maximum. As a result, a program of a BS digitalhigh-vision broadcast available in Japan can be recorded for two hoursor longer without deterioration of picture quality.

As sources (supply sources) of AV (Audio/Video) signals recorded on therecordable optical disc, an analog signal of for example a conventionalanalog television broadcast and a digital signal of for example adigital television broadcast such as a BS digital broadcast are expectedto be used. The Blu-ray Disc standard has established a sub standard fora method for recording AV signals of such broadcasts.

As a derivative standard of the current Blu-ray Disc standard, there isa movement to develop reproduction-only recording mediums on whichmovies, music, and the like are pre-recorded. As disc-shaped recordingmediums on which movies and music are pre-recorded, DVD (DigitalVersatile Disc) has been widely used. The reproduction-only optical discin accordance with the Blu-ray Disc standard is largely different fromand superior to the conventional DVD in a large recording capacity and ahigh transfer rate that allow high-vision pictures to be recoded for twohours or longer in high quality.

The reproduction-only DVD video standard accomplishes an interactivefunction with button images and so forth on a menu screen. For example,while a moving picture of the DVD video is being reproduced, a processthat calls a menu screen with a remote control commander or the like,selects a button image on the menu screen, and changes the reproducedscene can be performed.

In the case of the DVD video, a menu screen is composed of fixed subpicture data. When the menu screen is called, it is displayed in such amanner that the sub picture data is combined with moving picture data.Button image data is included in the sub picture, data. Patent Document“Japanese Patent Laid-Open Publication No. HEI 10-308924” describes astructure of which sub picture data is combined with moving picture dataand the combined data is recorded to a recordable DVD.

However, since the reproduction-only DVD video standard prescribesoperations using simple commands, it is difficult to accomplishcomplicated interactive functions. Thus, the creator needs much labor toaccomplish the complicated interactive functions with thereproduction-only DVD video standard.

In addition, the reproduction-only DVD video standard prescribes simpleprogram operations with a region of commands the are executed one afterthe other. Thus, multi-threaded programming and event-driven programmingcannot be performed on the reproduction-only DVD video standard.Although the DVD video standard does not have a function that accesses anetwork such as the Internet, when the network access function isconsidered to be accomplished, since response times from the network andthe user tend to be long, a multi-threaded process is very effective asa system structure to improve the performance.

In addition, in the DVD video standard, commands are embedded in an AV(Audio/Video) stream of which video data and audio data are multiplexed.As the AV stream is reproduced, the embedded commands are extractedtherefrom and executed. In other words, an operation model like tracinga vine is performed. Thus, only when the user selects a button andexecutes a command corresponding to the button on a title selection menuscreen or in a multi-story that contains branches, the next operation isdecided. Thus, in the DVD video standard, high speed process techniquesthat pre-read commands for branch prediction and speculative executioncannot be used.

In addition, from a view point of authoring, which creates discs, thereproduction-only DVD video standard has drawbacks. Now, it is assumedthat a button designed to appear at predetermined timing on an. AVstream and the timing is moved forward or backward on the time axis. Forexample, as shown in FIG. 1, buttons designate to appear after buttonappearance start time t1 to button appearance end time t2 on the AVstream are changed so t hat the buttons appear after time t3 that isearlier than time t1.

As well known, in the reproduction-only DVD video standard, an AV streamis encoded and packetized as prescribed in the MPEG 2 (Moving PicturesExperts Group 2) standard. Timing management of a reproduction output isperformed with pts (Presentation Time Stamp). In the example shown inFIG. 1, the button appearance start time is changed from pts1corresponding to time t1 to pts3 corresponding to time t3.

In the DVD video standard, navigation information, video data, audiodata, and sub picture data are individually packed and multiplexed asone AV stream. Commands and so forth are embedded in the AV stream.Video data, audio data, and sub picture data are designated to appear attheir multiplexed times. For example, as shown in FIG. 2A, these dataare multiplexed so that predetermined data are reproduced at theirpredetermined times on the time axis managed at pts intervals.

Since the data are multiplexed in such a manner, when button Adesignated to appear at time pts1 is changed so that it appears at timepts3, the AV stream shown in FIG. 2A should be re-multiplexed so thatsub picture data of button 1 appears at time pts3. When the contents ofa command that is executed when a button is selected are changed, the AVstream should be re-multiplexed. When an AV stream is re-multiplexed, itneeds to be reproduced by a DVD player and temporarily stored in amemory of the player.

Thus, conventionally, it is difficult to accomplish interactivefunctions having a higher degree of freedom. To accomplish them, thecreator side needs much labor.

DISCLOSURE OF THE INVENTION

An object of the present invention is to provide a reproducingapparatus, a reproducing method, a reproducing program, and a recordingmedium that allow interface functions with a high degree of freedom forlarge storage capacity type reproduction-only optical discs to be easilyaccomplished.

The present invention is a reproducing apparatus that reproduces contentdata hierarchically recorded on a disc-shaped recording medium,comprising: a player object that generates an event corresponding to apredetermined change; and a program object that is formed above saidplayer object and that is capable of describing a process correspondingto the event that takes place, wherein said player object controls areproduction process for content data hierarchically recorded on thedisc-shaped recording medium with a process corresponding to the eventdescribed in said program object.

In addition, the present invention is a reproducing method ofreproducing content data hierarchically recorded on a disc-shapedrecording medium, comprising the step of: causing a player object thatgenerates an event corresponding to a predetermined change to control areproduction process for content data hierarchically recorded on thedisc-shaped recording medium with a process corresponding to the eventdescribed in a program object that is formed above the player object andthat is capable of describing a process corresponding to the event thattakes place.

In addition, the present invention is a reproducing program that causesa computer device to execute a reproducing method of reproducing contentdata hierarchically recorded on a disc-shaped recording medium,comprising the step of: causing a player object that generates an eventcorresponding to a predetermined change to control a reproductionprocess for content data hierarchically recorded on the disc-shapedrecording medium with a process corresponding to the event described ina program object that is formed above the player object and that iscapable of describing a process corresponding to the event that takesplace.

In addition, the present invention is a computer readable recordingmedium on which a reproducing program has been recorded, the reproducingprogram causing a computer device to execute a reproducing method ofreproducing content data hierarchically recorded on a disc-shapedrecording medium, comprising the step of: causing a player object thatgenerates an event corresponding to a predetermined change to control areproduction process for content data hierarchically recorded on thedisc-shaped recording medium with a process corresponding to the eventdescribed in a program object that is formed above the player object andthat is capable of describing a process corresponding to the event thattakes place.

In addition, the present invention is a disc-shaped recording medium onwhich content data have been hierarchically recorded, at least contentdata and a program object that is capable of describing a processcorresponding to an event that takes place being recorded on therecording medium, a reproduction process for the content data beingcontrolled with a process corresponding to the event described in theprogram object by a player object that generates an event correspondingto a predetermined change and formed below the program object.

As described above, in claim 1, claim 13, claim 14, and claim 15 of thepresent invention, a player object generates an event corresponding to apredetermined change to control a reproduction process for content datahierarchically recorded on the disc-shaped recording medium with aprocess corresponding to the event described in a program object that isformed above the player object and that is capable of describing aprocess corresponding to the event that takes place. Thus, one playerobject is capable of performing a reproduction control for an originalprocess for each disc-shaped recording medium.

In addition, in claim 16 of the present invention, at least content dataand a program object that is capable of describing a processcorresponding to an event that takes place are recorded on the recordingmedium. A reproduction process for the content data is controlled with aprocess corresponding to the event described in the program object by aplayer object that generates an event corresponding to a predeterminedchange and formed below the program object. Thus, one player object iscapable of performing a reproduction control for an original process foreach recording medium.

According to the present invention, a virtual player that abstractlyforms an AV stream reproduction function of a BD-ROM player isstructured. Events that take place in an event model applied to thevirtual player are designated. In addition, user events corresponding touser inputs are defined. Thus, with one event model, functions of theDVD video can be accomplished.

In addition, according to the present invention, a virtual player thatabstractly forms an AV stream reproduction function of the BD-ROM playeris structured. A Java class corresponding to the virtual player isdefined. Events that take place in an event model applied to the virtualplayer are designated. In addition, user events corresponding to userinputs are defined. Thus, as a reproduction control method for areproduction-only video disc, event models of Java can be applied. As aresult, with a Java program, the reproduction of a play list can becontrolled.

Thus, to implement complicated interactive. functions, the disc creatorside does not need much labor.

In addition, the present invention can be applied not only to the Javalanguage, but to a script language such as the ECMA script. The contentcreator side can describe contents of event handlers corresponding toevents using a script language. As a result, when an event takes place,an operation that the content creator side desires can be easilyaccomplished.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 is a schematic diagram describing a change of an appearance starttime of a button according to related art;

FIG. 2A and FIG. 2B are schematic diagrams describing re-multiplicationof a stream;

FIG. 3A and FIG. 3B are schematic diagrams showing an example of a layerstructure of a HD movie mode of the BD-ROM standard;

FIG. 4 is a schematic diagram showing an example of a layer structure ofa BD-ROM player;

FIG. 5 is a schematic diagram describing a BD basic player 30;

FIG. 6 is a schematic diagram showing examples of events that take placewhile a play list is being reproduced;

FIG. 7 is a schematic diagram showing list of examples of methods ofclass BDBasicPlayer;

FIG. 8A, FIG. 8B, and FIG. 8C are schematic diagrams showing a list ofexamples of methods of class BDBasicPlayer;

FIG. 9 is a schematic diagram showing a list of examples of methods ofclass BDBasicPlayer;

FIG. 10 is a schematic diagram showing a list of examples of methods ofclass BDBasicPlayer;

FIG. 11 is a schematic diagram showing a list of examples of methods ofclass BDBasicPlayer;

FIG. 12 is a schematic diagram showing a list of examples of methods ofclass BDBasicPlayer;

FIG. 13 is a schematic diagram showing a list of examples of methods ofclass BDBasicPlayer;

FIG. 14A, FIG. 14B, and FIG. 14C are schematic diagrams showing a listof examples of definitions of events that take place in objectBDBasicPalyer of the D-ROM;

FIG. 15 is a schematic diagram describing an event and a listener;

FIG. 16A and FIG. 16B are schematic diagrams showing a list of examplesof methods with respect to event listener registration;

FIG. 17 is a flow chart showing an example of a process that creates aprogram using event listener registration;

FIG. 18 is a flow chart showing an example of a process of which areproduction side implements a program using event listenerregistration;

FIG. 19A, FIG. 19B, and FIG. 19C are schematic diagrams showing a clipAV stream file, a file that stores mark data, and a file that storesdata of a button, respectively;

FIG. 20 is a schematic diagram describing a BD-ROM virtual player modelbased on an event driven model;

FIG. 21A, FIG. 21B, FIG. 21C, and FIG. 21D are schematic diagramsshowing a list of examples of definitions of user input commands thatthe BD-ROM virtual player model accepts;

FIG. 22 is a schematic diagram showing an example of class RmtKeyEventof key input events of a remote control commander;

FIG. 23 is a schematic diagram showing a list of examples of methods ofobject RmtKeyEvent;

FIG. 24 is a schematic diagram showing a list of examples of keysobtained with method getRmtKeyCode;

FIG. 25A and FIG. 25B are schematic diagrams showing a list of examplesof keys obtained with method getRmtKeyCode;

FIG. 26 is a flow chart showing an example of a process that executes aprogram triggered by an user input event;

FIG. 27 is a schematic diagram showing an example of a file managementstructure applicable to a full profile of the BD-ROM;

FIG. 28A, FIG. 28B, and FIG. 28C are functional block diagrams showingan example of a structure of a player decoder 100 according to a firstembodiment of the present invention;

FIG. 29 is a schematic diagram showing a layer structure of the UMDvideo standard;

FIG. 30 is a schematic diagram showing an example of a player modelaccording to a second embodiment of the present invention;

FIG. 31 is a schematic diagram showing an example of an internalstructure of a movie player;

FIG. 32 is a schematic diagram showing three statuses of the movieplayer;

FIG. 33 is a schematic diagram showing an event model of the movieplayer according to the second embodiment of the present invention; and

FIG. 34A and FIG. 34B are schematic diagrams showing a list of examplesof event handlers of a movie player object.

BEST MODES FOR CARRYING OUT THE INVENTION

Next, the present invention will be described corresponding to thefollowing structure.

-   1. First embodiment of present invention-   1-1. About AV steam reproduction functions of BD-ROM-   1-1a. About HD movie mode of BD-ROM-   1-1b. About full profile of BD-ROM-   1-2. BD virtual player model based on Java-   1-3. About events generated by BD basic player-   1-3a. Categories of events-   1-3b. About event models-   1-4. About user inputs-   1-5. About file management structure-   1-6. About decoder model-   2. Second embodiment of present invention-   2-1. About UMD video standard-   2-2. About player model based on UMD video standard-   2-3. About event model of movie player-   2-4. About movie player object and user input-   2-5. About event handling by movie player object

1. First Embodiment of Present Invention

Next, a first embodiment of the present invention will be described. Foreasy understanding of the present invention, a standard for areproduction-only record medium will be briefly described as aderivative of the current Blue-ray Disc standard. In the followingdescription, the reproduction-only record medium as a derivative of theBlue-ray Disc standard is named the BD-ROM (Blu-ray Disc Read OnlyMemory) to distinguish it from a recordable Blu-ray disc. The BD-ROMstandard prescribes HD (High Definition) movie mode that providesinteractive functions similar to those of the DVD video.

1-1. About AV Steam Functions of BD-ROM

1-1a. About HD Movie Mode of BD-ROM

FIG. 3A and FIG. 3B show an example of a layer structure of the HD moviemode of the BD-ROM standard. The HD movie mode of the BD-ROM standard iscomposed of a clip layer, a play list layer, a movie object layer, andan index table layer formed in succession from the lowest layer.

The clip layer is composed of one or a plurality of clips. A clip iscomposed of a clip AV stream and clip information. The entity of an AVstream is a clip AV stream file. An AV stream is recorded in an MPEG(Moving Pictures Experts Group 2) transport stream with a time stamp. Aclip AV stream file can be multiplexed with button objects for buttonimages.

When a clip AV stream file is recorded, a clip information filecorresponding thereto is created in the relationship of 1 to 1. A set ofone clip AV stream file and one clip information file is referred to asa clip.

A clip is a record unit. The reproduction order of clips is controlledin an upper layer of clips. The play list layer is a layer in which thereproduction path of clips is designated. The play list layer containsone or a plurality of play lists. In the HD movie mode of the BD-ROMstandard, only one type of a play list referred to as a movie play listexists. A movie play list is composed of a set of play items. A playitem contains a set of an IN point and an OUT point that represent thereproduction range of a clip. With a plurality of play items, clips canbe reproduced in any order. Play items can designate the same clip. TheIN point and OUT point of a clip AV stream file are designated with bytepositions.

The movie object exists above the play list layer. The movie objectlayer is composed of one or a plurality of movie objects. A movie objectis composed of a play list reproduction command and a set of player setcommands. With commands contained in a movie object, a play listreproduction that reproduces a stream in a selected language or that hasconditional branches that cause play lists to be selected to varycorresponding to predetermined conditions can be accomplished. Anexample of an application that performs a play list reproduction thathas conditional branches would be a multi-story. Thus, movie objectsprovide interactivity.

The index table layer contains an index table and exists above the playlist layer. The index table is composed of a movie object that is firstexecuted when the disc is loaded into the player, a movie object that isexecuted when the menu key is pressed, and a list of titles that theuser can watch. The index table provides a user interface. A title iscomposed of one or a plurality of movie objects. The index table listsmovie objects that are first executed in titles. The player decides amovie object that it first executes in each operation on the basis ofthe index table.

Formed on the disc in the HD movie mode of BD-ROM is the foregoingdatabase. The player reads the database from the disc and performs thedesignated operation.

Next, a model of the player side will be described. In reality, variousimplement models of players are considerable. In this example, a playermodel is divided into a hardware-like functional block that reproduces astream and a software functional block that interprets and executescommands and that exists above the software-like functional block. FIG.4 shows an example of a layer structure of a player model of the BD-ROM.The left portion of FIG. 4 shows the layer structure, which is dividedinto two functional blocks in the HD movie mode.

A BD presentation engine 200 is a functional block that handles playlists and clips, decodes an AV stream, and reproduces a moving pictureand sound data. The BD presentation engine 200 also decodes a sub titlestream and a graphics stream for button images and menus.

The BD presentation engine 200 reproduces a designated play listcorresponding to a command received from the upper layer.

In the HD movie mode of the BD-ROM, a navigation engine 201 exists abovethe BD presentation engine 200. The navigation engine 201 interprets anindex table and movie objects and informs the BD presentation engine 200of a play list that is finally reproduced.

1-1b. About Full Profile of BD-ROM

Next, a full profile of the BD-ROM standard will be described. The fullprofile of the BD-ROM standard is a mode that has a higher degree offreedom and expansibility than the HD movie mode of the BD-ROM standard.Hereinafter, the full profile mode of the BD-ROM standard is referred toas the full profile.

According to the first embodiment of the present invention, the playermodel is provided with a Java virtual machine (Java VM) and executes aJava application to accomplish the full profile for higher degree offreedom and expansibility. This point is largely different from the HDmovie mode of the BD-ROM. Java, JavaVM, and so forth are registeredtrademarks of Sun Microsystems, Inc.

The full profile needs to use all the functions of the player. An API(Application Programming Interface) is defined between the BDpresentation engine 200 and a Java application. Thus, the BDpresentation engine 200 can be operated through the API. Like thenavigation engine 201 in the HD movie mode of the BD-ROM, the Javaapplication can be thought to exist above the BD presentation engine200. In other words, as illustrated on the right portion of FIG. 4, inthe full profile, a Java application 203 exists above the BDpresentation engine 200 through a Java VM 202.

In addition, Java also has a network function and a graphics function.Thus, there are a network layer 204 and a GUI (Graphical User Interface)layer 205 as lower layers of the Java application 203 and the Java VM202.

When the BD presentation engine 200 is operated with the Javaapplication 203, it can be thought that the player that reproduces aplay list is a virtual player on the software, commands for playback,stop, stream selection, and so forth are sent to the player, and theplayer is operated with the commands. The player needs to inform theplayer of the current status of the player as to which play list theplayer is reproducing and what times various operations such as streamselections and user inputs will change. According to the firstembodiment of the present invention, these functions of the player areconsidered as abstractive objects on the Java application 203. Theabstractive objects of the functions of the player are referred to asthe BD basic player.

Next, with reference to FIG. 5, a BD basic player will be described. ABD basic player 30 reproduces data from a disc-shaped recording mediumdefined in the first embodiment of the present invention. The BD basicplayer 30 is an object such as a personal computer on the computerenvironment. The computer environment is not limited to a generalpurpose personal computer. For example, the computer environmentincludes a software environment implemented in a dedicated reproducingapparatus and/or a recording and reproducing apparatus that reproducesdata from a disc-shaped recording medium defined in the first embodimentof the present invention. Hereinafter, the disc-shaped recording mediumaccording to the first embodiment of the present invention isabbreviated to the disc.

The BD basic player 30 is an abstractive object on the software. Belowthe BD basic player 30, an OS (Operating System) and hardware 33 exist.As a superordinate program of the BD basic player 30, there is a Javaprogram 31 through an API 32.

The BD basic player 30 has two statuses A and B. In status A, a playlist and graphics can be reproduced. In status B, their reproduction isstopped. Status A includes a plurality of operations such as variablespeed reproductions for example high speed reproduction and reversereproduction and jump reproduction that reproduces data from any timepoint on the disc. In addition, the BD basic player 30 containsvariables that hold statues of the player (common parameters 34). Thecommon parameters 34 are composed of registers and so forth on thecomputer environment. When an application (Java program 31) on the upperlayer accesses the common parameters 34 through a method of Java, theapplication can perform a process corresponding to the status of the BDbasic player 30.

The BD basic player 30 is an abstractive object on the software. The BDbasic player 30 finally converts control by the Java program 31 throughthe API 32 to control by the OS and the hardware 33 that exist in thelower level.

The BD basic player 30 needs to be controlled by a superordinate program(Java program 31) through the API 32. In addition, the BD basic player30 needs to inform the superordinate program that the status of the BDbasic player 30 changes. In other words, when the BD basic player 30performs a plurality of operations that successively reproduces one playlist and then another play list, the superordinate program needs to haveknown the status of the BD basic player 30. According to the firstembodiment of the present invention, as a mechanism that informs theupper layer of the status of the player, event models are used.

FIG. 6 shows examples of events that may take place while a play list isbeing reproduced. When the reproduction is started, event PlayStartedtakes place. Thereafter, when the reproduction of a play list isstarted, event PlayListStarted takes place. Since the beginning of aplay list is also the beginning of a play item, when eventPlayListStared takes place, event PlayItemStared also takes place. If achapter mark that presents a chapter is present at the beginning of theplay list, event MarkEncountered takes place.

Likewise, if a mark is present in a play item, while a play item isbeing reproduced, the mark is detected. Thus, event MarkEncounteredtakes place. When the reproduction of the play item has been completed,event PlayItemEnded takes place. When the reproduction of the play listhas been also completed, event PlayListEnded takes place. When thereproduction has been completed, event PlayEnded takes place.

Thus, while the player is being operated, various events take place.When the superordinate program is informed of occurrence of an event,the superordinate program can know the status of the player. Thesuperordinate program side prepares programs that are executed when itis informed of occurrence of events, it can deal with occurrence of theevents.

According to the first embodiment of the present invention, anabstracting method for a player, method models that allow a Java programto operate the player, and event models that inform the Java program ofthe status of the p layer are provided. The Java language is implementedto a control program of the BD-ROM. In the system according to the firstembodiment of the present invention, the disc creator creates the Javaprogram 31 that operates the BD basic player 30 through the API 32.

Next, a practical example of which functions of the player are analyzedin detail, abstracted, and represented as classes of Java will bedescribed.

1-2. BD Virtual Player Model Based on Java

To designate the full profile of the BD-ROM, it is necessary to definean execution environment for the Blu-ray Disc. An ideal model of the BDbasic player 30 that reproduces data from the BD-ROM is named the BD-ROMvirtual player model. The BD basic player 30 corresponds to a functionalblock that reproduces a play list of the BD-ROM virtual player model. Inthe BD-ROM virtual player model, statuses and conditions for the statuschanges are defined. In addition, attributes of streams reproduced bythe BD basic player 30, a commandless (script) description method thatcontrols streams, and so forth are defined. Scripts and streams recordedin the BD-ROM should be correctly operated on the BD-ROM virtual playermodel.

Although a real BD-ROM player can be installed in various manners, whena model that does not need to be installed is considered, minimallyrequired hardware resources can be clarified.

The BD-ROM virtual player model defined in the first embodiment of thepresent invention uses Java as a programming language that controls theBD basic player 30. Java is a programming language created by SunMicrosystems, Inc and has a plurality of editions such as J2EE, J2SE,J2ME, and so forth that differ in their applicable system scales. Inthis example, it is assumed that J2ME, which is an edition designed tobe installed to a set top box and so forth, is used for the BD-ROMvirtual player model. In other words, the BD-ROM virtual player model isextended on the basis of J2ME.

As a feature of the Java language, when a new class is defined for aprogram, it can be easily extended. Assuming that an HTML (Hyper TextMarkup Language) document does not support an event process. To allowthis HTML document to support the event process, a script for the eventprocess, for example an ECMA (European Computer ManufacturersAssociation) script, is described in the HTML document.

When the Java language is used, a function can be added corresponding toan extension method defined in the Java language without using aplurality of techniques that accomplish the function. Thus, a completedprogram is described in only the Java language. In addition, Java hasalready provided various program development environments. Thus, it canbe said that the disc creator can easily create disc contents.

When the BD-ROM virtual player model is described in the Java language,API, a class that has been defined by Sun Microsystems, Inc., can beused as it is. On the other hand, the BD basic player 30 is an originalfunction of the BD-ROM. Thus, Java does not provide the BD basic player30 as an existing class and API. When this original function of theBD-ROM is accomplished by Java, there may be various methods. However,according to the first embodiment of the present invention, functions ofthe BD basic player 30, API, event models, and so forth are createdcorresponding to the BD-ROM.

First, the BD basic player 30 is defined as one class of Java. The nameof the class is defined as BDBasicPlayer. FIG. 7 to FIG. 13 show listsof examples of methods of class BDBasicPlayer. All commands for the BDbasic player 30 are performed with these methods.

FIG. 7 shows examples of methods used to obtain player set information.Method getPlayerSpeed( ) obtains the reproduction speed of the player.Method getPlayerDirection( ) obtains the reproduction direction of theplayer. Method getDescriptionLanguage( ) obtains the display language ofthe player. Method getPlayListNumber( ) obtains the play list numberthat is currently being reproduced. Method getChapterNumber( ) obtainsthe chapter number that is currently being reproduced. MethodgetPlayerSupport( ) obtains the version and functions, of the player.

FIG. 8A, FIG. 8B, and FIG. 8C show examples of methods used to reproduceplay lists. Method playPlayList(int playListNumber, long[playListTime])starts the reproduction of a play list designated by “playListNumber.”“playListNumber” is not essential. “playListTime” designates an elapsedtime of the play list. The play list is reproduced from the elapsed time“playListTime.” Method playPlayList(String playListURL,long[PlayListTime]) starts the reproduction of a play list designated by“playListURL.” “playListURL” is a play list designated by a URL (UniformResource Locator). A play list on the Internet can be designated by aURL. When the player has an Internet connection function, a play listcan be downloaded from a URL designated by “playListURL” and reproduced.“playListTime” is not essential. “playListTime” designates an elapsedtime of the play list. The play list is reproduced from the elapsed time“playListTime.”

Method playPlayItem(int playListNumber, int playItemNumber) starts thereproduction of a play list designated by “playListNumber” from a playitem designated by “palyItemNumber.” “playItemNumber” is “PlayItem_id”that identifies a play item and that is a numeric value starting from 0.When the reproduction is started from the beginning of a play list, thevalue of “playItemNumber” is 0. Method playPlayItem (String playListURL,int playItemNumber) starts the reproduction of a play list designated by“playListURL” from a play item designated by “playItemNumber.”“playItemNumber” is “PlayItem_id” that is a numeric value starting from0. When the reproduction started from the beginning of a play list, thevalue of “playItemList” is 0.

Method playChapterMark(int playListNumber, int chapterNumber) reproducesa play list designated by “playListNumber” from a chapter designated by“chapterNumber.” “playListNumber” may be “playListURL.” A play listalways starts with ChapterMark (chapter mark).

Method moveAndPlay(string position, object)position=(“prev”|“next”|“top”|“tail”) object=(“PlayItem”|“Chapter”)designates a jump in a play list. “next” designates a jump from thecurrently reproduced position to the next play item or chapter andstarts the reproduction thereof. “top” designates a jump from thecurrently reproduced position to the end of the play list. “prev” startsthe reproduction from the beginning of the currently reproduced playlist. Method stop( ) stops the reproduction. At this point, the value ofthe standard resistor is not kept. Method playSoundEffect(int sound_id)reproduces a sound effect selected by “sound_id.”

FIG. 9 shows examples of methods used for video streams. MethodgetVideoStreamAvailability( ) obtains a status representing whether ornot a designated video stream is contained. Method setVideoStreamNumber() designates a video stream to be decoded. Method getVideoStreamNumber() obtains a video stream number that has been selected. MethodgetVideoStreamAttribute( ) obtains attributes of a video stream. Theattributes of a video stream are for example encoding system,resolution, aspect ratio, display mode in the case of an aspect ratio of4:3, closed caption, and so forth. Method setAngleNumber( ) designatesan angle number. Method getAngleNumber( ) obtains an angle number thathas been selected. Method getMaxVideoStreams( ) obtains the number ofvideo streams that can be selected.

FIG. 10 shows examples of methods used for audio streams. MethodgetAudioStreamAvailability( ) obtains a status representing whether ornot a designated audio stream is contained. MethodgetAudioStreamLanguage( ) obtains information about the language used ina designated audio stream. Method setAudioStreamNumber( ) designates anaudio stream to be reproduced. Method getAudioStreamNumber( ) obtains anaudio stream number that is being reproduced. MethodgetAudioStreamAttribute( ) obtains attributes of an audio stream. Theattributes of an audio stream are for example encoding system, number ofchannels, number of quantizer bits, sampling frequency, and so forth.Method getMaxAudioStreams( ) obtains the number of audio streams thatcan be obtained.

FIG. 11 shows examples of methods used for sub picture streams. MethodgetSPStreamAvailability( ) obtains a status representing whether or nota designated sub picture stream is contained. MethodgetSPStreamLanguage( ) obtains the language used in a designated subpicture stream. Method getSPDisplayStatus( ) obtains a display status ofa sub picture stream, namely whether or not it is currently beingdisplayed. Method setSPDisplayStatus( ) sets a display status of a subpicture stream, namely whether or not to display it. MethodgetSPStreamAttribute( ) obtains attributes of a sub picture stream. Theattributes of a sub picture stream are for example information aboutresolutions of sub picture streams, information about an aspect ratio of4:3 or wide type, and so forth.

FIG. 12 shows examples of methods used for internal timers. Methodsleep( ) stops a process for designated milliseconds. Method setTimeout() executes a function or a process after designated milliseconds elapse.Method setinterval( ) executes a process at intervals of predeterminedmilliseconds. Method clearTimer( ) stops a process of a designatedregistration timer ID. Method pauseTimer( ) pauses a timer having adesignated registration timer ID. Method resumeTimer( ) resumes a pausedtimer having a designated registration timer ID.

FIG. 13 shows an example of a method used for a key input. MethodgetPressedKey( ) obtains the type of a key that the user pressed.

1-3. About Events Generated by BD Basic Player

When a method for a player operation is executed, if the reaction of theplayer operation is obtained for example as to whether the operation ofthe player has been normally started, a return value of the method canbe used. However, if a process that takes a long time is designated andit is necessary to wait until the process is completed, another processcannot be performed. In addition, there are processes whose start timesare unpredictable. In these cases, a technique of events can be used toeffectively perform processes.

While the player is operating, various events take place. Events thattake place are defined in the BD-ROM virtual player model. A model ofwhich when the operation of the player varies, an event takes place andwhen there is a program corresponding to an event, the program isexecuted is defined by the BD-ROM virtual player model.

When a plurality of play lists are reproduced in a predetermined order,a program that performs a process that starts the reproduction of a playlist after receiving an event that represents that the reproduction ofthe preceding play list has been completed is provided. In addition, aprogram that performs an exception process when the next play list isnot reproduced due to any cause is provided.

When such an event is not described, an operation (a default eventhandler) that is built in the player is executed or the event isignored. When it is not necessary to perform any process, the event isactively ignored. At this point, an event listener (that will bedescribed later) is not registered. Alternatively, when a programcorresponding to the event is not described, the event is ignored.

A model of which an non-periodic event takes place and a programcorresponding to the event is executed is referred to as the eventdriven model.

1-3a. Categories of Events

Events of the BD-ROM virtual player model can be categorized as threetypes of (1) events that take place in a content that is beingreproduced, (2) an event that takes place as an interrupt by the user,and (3) events that take place corresponding to status changes of theplayer.

(1) Events that take place in a content that is being reproduced aremark detection interrupt events that take place at times designated bymarks. When these events take place, graphics are displayed or erased.These events are pre-set interrupts. Whenever the reproduction isperformed, these event take place at the same timings.

(2) An event that takes place as an interrupt by the user is supposed tobe a key input to a remote control commander with which the useroperates the player. Interrupt timing of this event is unpredictablesince it is not clear at what time the user will perform a key input.

(3) Events that take place corresponding to status changes of the playerare for example an event that takes place when the status of the playerchanges from the stop starts to the reproduction status and an eventthat takes place when a stream that is being reproduced was changed toanother stream. When a timer is set in a program, a timer interruptevent takes place at a designated time. Status changes of the player maybe (1) events that take place in a content that is being reproduced and(2) an event that takes place as an interrupt by the user.

FIG. 14A, FIG. 14B, and FIG. 14C show a list of examples of definitionsof events that take place in object BDBasicPlayer of the BD-ROM. ObjectBDBasicPlayer is an object that takes place in class BDBasicPlayer.

First, (1) events that take place in a content that is being reproducedwill be described. In FIG. 14A, FIG. 14B, and FIG. 14C, eventMarkEncounteredEvent takes place when a mark was detected while acontent was being reproduced. This event is used when for example agraphics screen is displayed. Event ValidPeriodStartedEvent takes placewhen a selection valid period of a user input started. EventValidPeriodEndedEvent takes place when a valid period of a user inputended. This event is used when for example a link is forcedly executed.Event PlayRepeatedEvent takes place when the beginning of a repeatreproduction region was detected. Event VideoStreamChangedEvent takesplace when a video stream that was being reproduced was changed. EventAudioStreamChangedEvent takes place when an audio stream that was beingreproduced was changed. Event SubpictureStreamChangedEvent takes placewhen a sub picture stream that was being reproduced was changed. EventStreamDisplayStatusChangedEvent takes place when the display/non-displaystatus of a stream was changed. Event PlayListStartedEvent takes placewhen the beginning of a play list was detected. Event PlayListEndedEventtakes place when the end of a play list was detected. EventPlayItemStartedEvent takes place when the beginning of a play item wasdetected. Event PlayItemEndedEvent takes place when the end of a playitem was detected.

Next, (2) an event that takes place as an interrupt by the user will bedescribed. Event RmKeyEvent takes place when a key of the remote controlcommander was pressed. A key that was pressed is determined with acorresponding event listener (that will be described later).

Next, (3) events that take place corresponding to status changes of theplayer will be described. Event PlayStartedEvent takes place when theplayer started the reproduction. Event PlayStoppedEvent takes place whenthe player stopped the reproduction. Event PlayStilledEvent takes placewhen the player stilled the reproduction. Event StillReleaseEvent takesplace when the player released the stilled status of the reproduction.Event PlayPausedEvent takes place when the reproduction of the playerwas paused by the user. Event PauseReleaseEvent takes place when thepaused status was released. Event TimerFiredEvent takes place when acount down timer became 0 or a count up timer became a predeterminedvalue.

1-3b About Event Models

It is supposed that the events described in FIG 14A, FIG. 14B, and FIG.14C take place in object BDBasicPlayer. In other words, it is supposedthat an event source of the Java language is object BDBasicPlayer.Events are defined as event objects in the Java language. A method thatis executed when an event takes place is called a listener. To execute alistener, it is necessary to register an event listener to an eventsource. When a listener has been registered to an event source, objectBDBasicPlayer transmits an event to the event listener. The object thathas received the event executes a method provided in the object.

Next, with reference to FIG. 15, listeners and events will be described.Objects 211, 211, . . . and so forth have a listener interface thatreceives an event and executes a listener. The object 211 registers alistener corresponding to an event that the object 211 desires toreceive to object BDBasicPlayer 210 (step S10). A registration of alistener corresponding to an event to object BDBasicPlayer 210 is namedthe event listener registration. The plurality of objects 211, 211, . .. , and so forth can perform the event listener registration to objectBDBasicPlayer 210.

An object that implements a listener interface is an object thatimplement a method that is executed when an event takes place. In theexample shown in FIG. 15, method doAction( ) that is executed when apredetermined event takes place is implemented to the object 211. Whenan event took place in object BDBasicPlayer 210 (at step S11) and theevent has been registered to object BDBasicPlayer 210 as an eventlistener, the event is transmitted to the object 211 that has beenregistered as an event listener (at step S12). The object 211 that hasreceived the event executes method doAction( ) (at step S13).

FIG. 16A and FIG. 16B show a list of examples of methods used toregister event listeners. Method addContentListener(ContentsListener 1)registers a designated listener to object BDBasicPlayer to receive eventContentsEvent from object BDBasicPlayer. The registered listener isadded to array ContentsListener( ). Event ContentsEvent is a generalterm of (1) events that take place in a content being reproduced. MethodaddRmtKeyListener(RmtKeyListener 1) registers a designated listener toreceive event RmtKeyEvent ((2) an event that takes place as an interruptby the user, described in FIG. 14A, FIG. 14B, and FIG. 14C) from objectBDBasicPlayer. The registered listener is added to array RmtKeyListener(). Method addPlayerStatusListener(PlayerStatusListener 1) registers adesignated listener to receive event PlayerStatusEvent from objectBDBasicPlayer. The registered listener is added to arrayPlayerStatusListener( ). Event PlayerStatusEvent is a general term of(3) events that take place corresponding to status change of the player,described in FIG. 14A, FIG. 14B, and FIG. 14C.

Method removeContentListener(ContentsListener 1) removes a designatedlistener not to receive event ContentsEvent from object BDBasicPlayer.Method removeRmtKeyListener(RmkKeyListener 1) removes a designatedlistener not to receive event RmtKeyEvent from object BDBasicPlayer.Method removePlayerStatusListener(PlayerStatusListener 1) remotes adesignated listener from object BDBasicPlayer not to receive eventPlayerStatusEvent from object BDBasicPlayer.

When a method starting with “add” is executed, an event listener isregistered. An e vent listener is registered before a desired eventtakes place. When an event does not need to be received, with a methodstarting with “remove,” the transmission of the event can be stopped.

In FIG. 16A and FIG. 16B, method getContentsListeners( ) returns anarray of all content listeners registered in object BDBasicPlayer.Method getRmtkeyListeners( ) returns an array of all RmtkeyListenersregistered in object BDBasicPlayer. Method getPlayerStatusListeners( )returns an array of all PlayerStatusListeners registered in objectBDBasicPlayer.

Next, an example of a program created using the event listenerregistration will be described. In this example, a program that causesbuttons to appear at a designated scene of a play list that is beingreproduced is created. To determine that a predetermined scene is beingreproduced in a play list, a mark function can be used. The markfunction is a function that can set any time of a play list. When amarked scene is about to be reproduced, event MarkEncounteredEventdescribed in FIG. 14A, FIG. 14B, and FIG. 14C takes place. A buttonobject that implements a listener interface that causes a button toappear when event MarkEncounteredEvent takes place may be created. Inother words, a program that registers an event listener to objectBDBasicPlayer and causes an image to appear when eventMarkEncounteredEvent is received may be implemented to the object of thebutton.

More practically, as exemplified in FIG. 17, it is decided at what sceneof a play list a button appears (at step S20). A mark is set at the timethe button appears in the play list (at step S21). Next, a method thatregisters an event listener corresponding to the mark that has been setat step S21 is described in the program (at step S22). In other words,at step S22, the operation performed at step S10 shown in FIG. 15 isdescribed. A process that is executed when an event takes place isdescribed in the button object. The listener interface corresponding tothe mark generation event is implemented to the button object (at stepS23). In other words, at step S23, the content of step S13 is described.These programs are described in the Java language.

FIG. 18 shows an example of a process that implements an operation ofthe programming shown in FIG. 17 to the reproduction side. ObjectBDBasicPlayer starts the reproduction of a play list (at step S30). Itis assumed that while a play list was being reproduced, objectBDBasicPlayer detected a mark in the play list (at step S31). ObjectBDBasicPlayer checks whether or not an event listener corresponding tothe detected mark has been registered (at step S32). In other words, atstep S32, it is determined whether or not the process at step S10described in FIG. 15 has been performed. If the determined resultrepresents that the corresponding event listener has not beenregistered, the flow advances to step S36. Thus, object BDBasicPlayerdoes not transmit an event.

On the other hand, when the determined result represents that the eventlistener corresponding to the mark has been registered, the flowadvances to step S33. At step S33, object BDBasicPlayer transmits eventMarkEncounteredEvent to an object that has registered the eventlistener. This process is the same as the process at step S12 shown inFIG. 15. When the object has received event MarkEncounteredEvent, theobject executes the method to be executed when eventMarkEncounteredEvent takes place (at step S34). In other words, at stepS34, method doAction( ) at step S13 shown in FIG. 15 is executed. Inthis example, method doAction describes a process that cause a button toappear on the screen. The button appears on the screen corresponding tothe description (at step S35).

As described in the related art section shown in FIG. 2A and FIG. 2B, inthe conventional DVD video, since information of buttons has beenmultiplexed with an AV stream, when the button appearance start time ischanged, it is necessary to re-multiplex the AV stream.

In contrast, in the BD-ROM virtual player model according to the firstembodiment of the present invention, by changing only the set positionof a mark on the time axis, the button appearance start time can bechanged. According to the first embodiment of the present invention, asshown in FIG. 19A, FIG. 19B, and FIG. 19C, a clip AV stream file (FIG.19A), a mark data file (FIG. 19B), and a button data file (FIG. 19C) areindependently structured (the file structure will be described later).The clip AV stream file is a file of which a video pack and an audiopack are multiplexed.

In such a manner, information of a mark is stored in a database filethat is different from a file of the clip AV stream. Thus, as shown inFIG. 19A, FIG. 19B, and FIG. 19C, when the appearance start time of abutton image is changed from time pts1 to time pts2, it is necessaryonly to change time pts1 of the mark information to time pts2. Thus,even if the position of a mark is changed, it is not necessary tore-multiplex the clip AV stream.

In addition, according to the first embodiment, data that compose abutton is stored in a file that different from a file of the clip AVstream. Thus, as a process executed when a button is selected, only themethod of the button object independent from the clip AV stream fileneeds to be changed. As described above, in the conventional DVD video,since a button command that performs a process to be executed when thebutton is selected is multiplexed with an AV stream, the processexecuted when the button is selected cannot be easily accomplished.

In the full profile of the BD-ROM, the foregoing BD-ROM virtual playermodel can provide more flexibly and easier authorization than theconventional DVD video.

In the foregoing embodiment, the BD-ROM virtual player model isstructured on the basis of an object oriented event listener model.Alternatively, a BD-ROM virtual player model may be structured with asimpler event driven model than that example.

Next, with reference to FIG. 20, a BD-ROM virtual player model based onan event driven model will be described. Events that take place inobject BDBasicPlayer are the same as those in an object oriented modelshown in FIG. 15. In the case of this event driven model, it is assumedthat when an event takes place, only method processEvent( ) defined inobject BDBasicPlayer is called. In other words, in the model, no matterwhat event takes place, the same method is called. Thus, to change aprocess corresponding to the type of an event that takes place, it isnecessary to determine what event took place in method processEvent( ).

In this model, it is not necessary to register an event listenercorresponding to each event. However, whenever an event takes place,since method processEvent( ) is called, the efficiency of this model islow. In addition, since method processEvent( ) to be processed isfixedly defined in object BDBasicPlayer, this model does not haveexpansibility that allows a new process routine to be defined in anotherobject and executed. Thus, according to the first embodiment of thepresent invention, which emphasizes high expansibility, it is preferredto structure the BD-ROM virtual player model with an object orientedmodel described in FIG. 15.

1-4. About User Inputs

FIG. 21A, FIG. 21B, FIG. 21C, and FIG. 21D show a list of examples ofdefinitions of user input commands that the BD-ROM virtual player modelcan receive. The user inputs are supposed to be inputs of keys of theremote control commander with which the user operates the player andinputs corresponding to the menu screen of the player. In the BD-ROMvirtual player model, the user inputs are one type of key input events.

Command timeSearch(playlistNumber, Time) causes a scenario that is beingreproduced to be reproduced from time designated by “Time.” Commandplay(palylistNumber, chapterNumber) causes a designated scenario to bereproduced from a chapter designated by “chapterNumber.” Command stop( )causes the reproduction to be stopped. Command prev( ) causes thereproduction to be started from the beginning of the previous chapter ofa chapter that is being reproduced. Command top( ) causes thereproduction to be started from the beginning of a chapter that is beingreproduced. Command next( ) causes the reproduction to be started fromthe beginning of the next chapter of a chapter that is being reproduced.Command forwardScan(speed) causes the reproduction to be performed inthe forward direction at a speed designated by “speed.” CommandbackwardScan(speed) causes the reproduction to be performed in thebackward direction at a speed designated by “speed.” “speed” can bedesignated in the range from 0.1 to 360.

Command moveCursor(direction, [level]) causes the cursor to be moved inthe upper, lower, left, and right directions. “direction” is any one of“upper,” “lower,” “left,” and “right” that cause the cursor to be movedin the upper, lower, left, and right directions, respectively. “level”can be designated with a value in the range from “0” to “255.” “level”is optional and normally not used or “0.” When “level” is anintermediate value (“1” to “255”), an analog joy stick can berepresented.

Command click(buttonNumber) causes a button on the screen to be clicked.Command focus(buttonNumber) causes a button on the screen to be focused.

Command stillOff( ) causes the reproduction stilled by the player to beresumed. Command stillOff( ) can be integrated with command pauseOff.Command pauseOn( ) causes the reproduction to be paused. CommandpauseOn( ) can be operated only when a scenario is reproduced. CommandpauseOff causes the paused reproduction to be released.

Command LanguageSelect(languageCode) designates the display language ofthe menu. Command StreamChange(StreamNumber) causes a stream that isbeing reproduced to be changed. Command setEnabled (Boolean) causes astream to be displayed/not displayed. Command angleChange(angleNumber)causes a display angle to be changed. Command parentalCountrySelect(countryCode) causes a country code for a parental level to be set.Command videoPresentationModeChange (mode) designates a video displayformat. “mode” is any one of “Wide,” “LB (Letter Box),” and “PanScan.”

FIG. 22 shows an example of class RmtKeyEvent that represents a keyinput event that takes place in the remote control commander. Parameter“source” is an object of a source of an event. Thus, “source” representsobject BDBasicPlayer. Parameter “id” is an integer that represents thetype of an event. Parameter “when” is an integer in the long format thatrepresents time at which an event takes place. Parameter “mtKeyCode” isan integer type code corresponding to an input virtual key or“VK_UNDEFINED.” “VK_UNDEFINED” will be described later.

As described in FIG. 3A and FIG. 3B, user inputs by keys of the remotecontrol commander are received by the hardware and transferred to objectBDBasicPlayer. Object BDBasicPlayer generates object RmtKeyEventcorresponding to the user input and class. RmtKeyEvent. An object thathas registered an event listener corresponding to object RmtKeyEvent isinformed of a command corresponding to a user input.

FIG. 23 shows a list of examples of methods of object RmtKeyEvent.Method getRmtKeyCode returns a key code corresponding to a key thatcaused an event to take place. Method setRmtKeyCode sets a key code of akey that cause an event to take place. When method getRmtKeyCode isexecuted, it can be determined by what key object RmtKeyEvent tookplace.

FIG. 24, FIG. 25A, and FIG. 25B show lists of examples of keys obtainedby method getRmtKeyCode described in FIG. 23. Keys starting with “VK”shown in FIG. 25A and FIG. 25B are virtual keys on object BDBasicPalyer.Key VK_POWER provides a function corresponding to power key. KeyVK_POWER_ON provides a function corresponding to power ON key. KeyVK_POWER_OFF provides a function corresponding to power OFF key. KeyVK_MENU provides a function corresponding to menu key that causes a menuto appear. Key VK_ENTER provides a function corresponding to enter keythat causes data to be entered. Key VK_RETURN provides a functioncorresponding to return key that causes the step of a process to bereturned by one.

Key VK_PLAY provides a function corresponding to play key that causesthe reproduction to be performed. Key VK_STOP provides a functioncorresponding to stop key that causes the reproduction to be stopped.Key VK_PAUSE provides a function corresponding to pause key that causesthe reproduction to be paused. Key VK_FAST_FORWARD provides a functioncorresponding to fast forward key that causes the fast forwardreproduction to be performed. Key VK_FAST_REVERSE provides a functioncorresponding to fast reverse key that causes the fast reversereproduction to be performed. Key VK_SLOW_FORWARD provides a functioncorresponding to slow (forward) key that causes the slow forwardreproduction to be performed. Key VK_SLOW_REVERSE provides a functioncorresponding to slow (reverse) key that causes the slow reversereproduction to be performed. Key VK_STEP_FORWARD provides a functioncorresponding to step (forward) key that causes the forward stepreproduction to be performed. Key VK_STEP_REVERSE provides a functioncorresponding to step (reverse) key that causes the reverse stepreproduction to be performed.

Key VK_NEXT provides a function corresponding to next key that causes avalue corresponding to “next” to be input. Key VK_PREVIOUS provides afunction corresponding to previous key that causes a value correspondingto “previous” to be input. With Key VK_NEXT and Key VK_PREVIOUS, thecurrent chapter is caused to be jumped to the next and previouschapters, respectively.

Key VK_UP provides a function corresponding to up key that causes avalue of “up” to be input. Key VK_DOWN provides a function correspondingto down key that causes a value of “down” to be input. Key VK_RIGHTprovides a function corresponding to right key that causes a value of“right” to be input. Key VK_LEFT provides a function corresponding toleft key that causes a value of “left” to be input. Key VK_UP_RIGHTprovides a function corresponding to upper right key that causes a valueof “upper right” to be input. Key VK_UP_LEFT provides a functioncorresponding to upper left key that causes a value of “upper left” tobe input. Key VK_DOWN_RIGHT provides a function corresponding to lowerright key that causes a value of “lower right” to be input. KeyVK_DOWN_LEFT provides a function corresponding to lower left key thatcauses a value of “lower left” to be input. These directional keys causethe cursor to be moved on the screen.

Key VK_ANGLE provides a function corresponding to angle selection keythat causes the angle of a multi-angle video content to be changed. KeyVK_PRESENTATION_GRAPHICS provides a function corresponding to sub titleselection key that selects English/Japanese sub title, sub titledisplay/non-display mode, and so forth. Key VK_AUDIO provides a functioncorresponding to audio selection key that selects an audio mode such asa surround mode or a bilingual mode. Key VK_VIDEO_ASPECT provides afunction corresponding to aspect ratio selection key that selects anaspect ratio of a video content. Key VK_COLORED_KEY_1 provides afunction corresponding to colored function key 1. Key VK_COLORED_KEY_2provides a function corresponding to colored function key 2. KeyVK_COLORED_KEY_3 provides a function corresponding to colored functionkey 3. Key VK_COLORED_KEY_4 provides a function corresponding to coloredfunction key 4. Key VK_COLORED_KEY_5 provides a function correspondingto colored function key 5. Key VK_COLORED_KEY_6 provides a functioncorresponding t o colored function key 6. Key VK_UNDEFINED is anundefined key.

The keys listed in FIG. 24, FIG. 25A, and FIG. 25B do not always matchkeys physically disposed on a real remote control commander. Inaddition, depending on a type of a remote control commander, a pluralityof functions may be assigned to one physical key. Alternatively, theuser may select one from images of keys of a remote controller thatappears on the screen. Thus, the keys shown in FIG. 24, FIG. 25A, andFIG. 25B are virtual keys that abstractly form corresponding functions.Since user inputs to object BDBasicPlayer are represented with suchvirtual keys, user inputs that do not depend on the apparatus can bedefined.

FIG. 26 shows an example of a process that executes a provided programwhen a user input event takes place. In the process shown in FIG. 26,when the user presses “next” key while one chapter is normally beingreproduced, the current chapter is jumped to the next chapter, the nextchapter reproduced, and a prepared message appears on the screen.

“next” key is a key that causes the current chapter to be jumped to thenext chapter and the next chapter to be reproduced. “next” key is forexample a key disposed on the remote control commander. The process ofthe flow chart shown in FIG. 26 is started when the user presses “next”key while the player is reproducing a chapter (at step S41). When “next”key is pressed, object RmekeyEvent takes place (at step S42). Thedatabase is searched for a chapter mark of the next chapter (at stepS43). Corresponding to the searched result, it is determined whether ornot there is the next chapter mark (at step S44). When there is nochapter mark, a series of processes are completed and the regularreproduction is resumed. When the determined result at step S44represents that there is the next chapter mark, the flow advances tostep S45.

At step S45, object BDBasicPlayer causes the reproduction of the currentchapter that is being reproduced to be stopped in response to “next” key(at step S45). When the reproduction of the player is stopped, eventPlayStoppedEvent takes place (at step S46). Object BDBasicPlayer obtainsthe byte position of the next chapter mark in the clip AV stream filefrom feature point information of t he clip information file. Theobtained byte position of the file is accessed and the stream is readand reproduced from the byte position (at step S47).

After step S48, a series of processes that cause a message to appear onthe screen are performed so as to inform the user that the currentchapter was changed. To cause a message to appear at a position thecurrent chapter was changed, a method that causes the player to displaya message needs to be implemented as an event listener corresponding toevent MarkEncounteredEvent. When the reproduction of the stream isstarted, event PlayStartedEvnet takes place. In addition, eventMarkEncountedEvent takes place corresponding to the chapter mark (atstep S48).

When event MarkEncounterEvent takes place, at step S49, the execution ofa listener corresponding to event MarkEncounteredEvent is started. Inthe listener, the type of the mark detected by eventMarkEncounteredEvent is obtained (at step S50). It is determined whetheror not the mark is a chapter mark (at step S51). When the determinedresult represents that the mark is not a chapter mark, the flow advancesto step S53. At step S53, the execution of the listener is completed.When the determined result represents that the detected mark is achapter mark, the flow advances to step S52. At step S52, a message thatrepresents the beginning of a chapter appears.

In this example, when the user presses a key of the remote controlcommander, event RmtKeyEvent takes place. When event RmtKeyEvent takesplace, a plurality of status changes take place. As a result, aplurality of events, PlayStoppedEvent, PlayStartedEvent, andMarkEncunteredEvent take place.

Thus, in the BD-ROM virtual player model according to the firstembodiment of the present invention, a user input event causes thestatus of the player to change and a new event to take place. With newevents, various processes can be performed.

According to the first embodiment of the present invention, by defininga BD-ROM virtual player model, various merits that are not present inthe DVD video can be obtained. For example, according to the firstembodiment of the present invention, several functions of theconventional DVD video can be accomplished with one model.

As a first example, a forced sub title display function and a UOP (UserOperation) prohibition function may be used. The forced sub titledisplay function is a function that causes a predetermined sub title tobe forcedly displayed at a predetermined scene even if the user hasturned off the sub title display function. The UOP prohibition functionis a function that prohibits the user from inputting data. In the DVDvideo, data structures and operation models for these functions aredefined.

In the BD-ROM virtual player model according to the first embodiment ofthe present invention, with respect to the forced sub title displayfunction, a scene (time) for which a sub title is forcedly displayed ismarked. A process that causes a sub title to be forcedly displayed onthe screen regardless of whether the sub title display mode has beenturned on or off is provided as a listener. Thus, with a model thatprocesses regular marks, the forced sub title display function can beaccomplished.

With respect to the UOP prohibition function, unless an even listenerfor key input events of the remote control commander has beenregistered, even if a key input event takes place, no process isperformed. Thus, the user input is ignored and the UOP is prohibited.

Thus, according to the first embodiment of the present invention, sincethe functions of the DVD can be accomplished with one event model, thedisc creator side can unlaboriously create the DVD.

In addition, in the DVD video, keys of the remote control commander arepre-assigned for operations. When the sub menu key of the remote controlcommander is pressed, as an operation that has been pre-assigned for thesub menu key, a sub menu screen on which audio mode, sub title mode, andangle can be changed appears. However, since the sub menu is notessential data of the DVD video, a disc that does not have the sub menuexists. In this case, even if the sub menu key is pressed while theplayer has such a disc, no operation takes place.

On the other hand, in the BD-ROM virtual player model according to thefirst embodiment of the present invention, as described with referenceto FIG. 21A, FIG. 21B, FIG. 21C, FIG. 21D, FIG. 22, FIG. 23, FIG. 24,FIG. 25A, and FIG. 25B, the relationships of keys and processesperformed corresponding thereto can be designated by the disc creatorside. Thus, with a program that causes the player to a message to appearin the case that the disc does not have the sub menu, when the userpresses the sub menu key, he or she can be informed of a messagerepresenting that the disc does not have the sub menu.

Thus, according to the first embodiment of the present invention, sincethe disc creator side has a higher degree of freedom to create a disc,the disc creator side can create a disc that the user can easily handle.

In addition, according to the first embodiment of the present invention,a Java class is defined corresponding to the BD-ROM virtual player modeland the reproduction of a play list is controlled with a Java program.With the Java program, a multi-thread program can be accomplished. As aresult, time lags due to a network access and waiting time in responseto a user input can be easily handled. In addition, with the Javaprogram, a branch prediction, a speculative execution, and so forth canbe easily accomplished by pre-reading commands. Thus, processes can beperformed at high speed.

1-5. About File Management Structure

Next, with reference to FIG. 27, a file management structure applicableto a full profile of the BD-ROM will be described. Files arehierarchically managed. One directory (a root directory in the exampleshown in FIG. 27) is formed on a recording medium. Files below thisdirectory are managed by one recording and reproducing system.

Below the root directory, directory BDMV is placed. A plurality ofdirectories BDMV may be placed below the root directory.

Below directory BDMV, two files “scenario.hdmv” and “entrylist.data” areplaced. Below directory BDMV, a plurality of directories “PLAYLIST,”“CLIPINF,” and “STREAM” are placed.

File “scenario.hdmv” is a scenario file that stores a scenario. Ascenario has a structure of which a plurality of play lists arearranged. For example, a scenario controls the reproduction order ofplay lists. To allow the user to see a scenario in its divided units,chapters may be provided. Movie objects in the HD movie mode of theBD-ROM are stored in file “scenario.hdmv.”

File “entrylist.data” stores information about a menu such as searchpoints (title entries) of a scenario, play lists that compose a menu,and entry points to a play list group. An index table in the HD moviemode of the BD-ROM is stored in file “entrylist.data.”

Directory “PLAYLIST” stores play lists. One play list is stored in onefile “****.mpls.” Information that represents the positions of marks ina clip AV stream are stored in play list file “****.mpls” thatdesignates the reproduction r age of the clip AV stream.

Directory “CLIPINF” stores clip information files “#####.clpi.”Directory “STREAM” stores clip AV stream files “%%%%%.m2ts.” Whenrelated file names are assigned to clip AV stream files, they can beeasily correlated. For example, the same file names “#####” and “%%%%%”except for extensions are used for clip information files and clip AVstream files.

A Java class file that composes a Java program is stored in apredetermined directory (not shown) placed below the directory BDMV.Alternatively, the Java class file may be placed in a directory in thesame hierarchical level as the directory BDMV.

1-6. About Decoder Model

Next, a player decoder 100 according to the first embodiment of thepresent invention will be described. FIG. 28A, FIG. 28B, and FIG. 28Care a functional block diagram showing an example of a structure of aplayer decoder 100 according to the first embodiment of the presentinvention. The player decoder 100 interprets data reproduced from a discloaded into a drive device (not shown), outputs an AV (Audio/Video)stream that composes a content, and allows the user to interactivelyoperate the output AV stream.

All operations of the player decoder 100 are controlled by a CPU (notshown). Streams and data flows of individual portions of the playerdecoder 100 are monitored and controlled by the CPU.

When the disc is loaded into the drive device (not shown), file“scenario.hdmv” that describes the reproduction order of play lists andfile “entrylist data” that describes the top play list of the play listgroup that compose a menu and a title are reproduced. In accordance withthe descriptions of file “scenario.hdmv” and file “entrylist.data”,other necessary files are read from the disc and thereby a contentrecorded on the disc is reproduced.

For example, in accordance with the descriptions of file “scenario.hdmv”and file “entrylist.data”, moving picture data displayed on a videoplane 134 and a second video plane 160, image data displayed on agraphics plane A 132, a graphic plane B 133, and a second video plane160, a play list file, and so forth are read from the disc. In the fullprofile, a file that stores a program is read and executed.

In the following description, among those data that are read from thedisc, streams such as moving picture data, sub pictures (sub titledata), and sound data that should be continuously processed are referredto as real time streams. In contrast, non-real time data such asscenario files, play list files, program files, part of moving pictures,still pictures, and sound data that do not need to be continuouslyprocessed are referred to as store objects. The store objects are storedin a memory or the like and expanded thereon. Store objects stored inthe memory are processed when necessary.

The player decoder 100 has two systems of input channels that arechannel (1) and channel (2). A store object is input to an inputterminal 101 of the input channel (1). A real time stream is input to aninput terminal 202 of the input channel (2). Alternatively, a storeobject may be input to the input terminal 202. According to the firstand second embodiments of the present invention, a real time stream andpart of store objects that are input to the input terminal 202 are forexample MPEG 2 TSs (Moving Pictures Experts Group 2 Transport Streams).

A real time stream that is input to the input terminal 202 is notlimited to an MPEG 2 TS. As long as a real time stream can betransmitted in the unit of a packet and multiplexed with video data,audio data, still picture data, or the like, a stream that has anotherformat can be input. At this point, a PID filter 110 that will bedescribed later is used as a demultiplexer that demultiplexes videodata, audio data, still picture data, or the like.

When the rotation speed of the disc in the drive device is increased forexample twice and the read transfer rate of the disc is increased, thereading operations for the two systems of the channels (1) and (2) fromthe disc can be performed in time division basis.

Next, the system of the input channel (1) will be described. A storeobject that is input to the input terminal 101 is input to a switchcircuit 102. When a program code of a Java file, an ECMA (EuropeanComputer Manufacturers Association) script, an HTML (Hyper Text MarkupLanguage) file (or an XHTML file), or the like as a store object isinput, the switch circuit 102 selects an output terminal 102A. The inputprogram code is stored in a code buffer 104.

On the other hand, when image data as a store object are input, theswitch circuit 102 selects an output terminal 102B. As a result, theinput image data are input to a switch circuit 103. When a real timestream that is input to the input terminal 202 does not contain imagedata displayed on the graphics plane A 132 and the graphics plane B 133,the switch circuit 103 selects an input terminal 103A. The image datathat are input from the switch circuit 102 is stored in a contentsbuffer 105.

Likewise, when image data displayed on the graphics plane A 132 and thegraphics plane B 133 are contained in a real time stream that is inputto the input terminal 202, the switch circuit 103 selects an inputterminal 103B. As a result, the image data are stored in the contentsbuffer 105. Store objects stored in the code buffer 104 and the contentsbuffer 105 are read when necessary and supplied to a multimedia engine106.

The image data of the store object stored in the contents buffer 105 arealso supplied to a graphics decoder A 116 and a graphics decoder B 117through switch circuits 107 and 108, respectively.

The multimedia engine 106 includes an XML parser 106A, a program/scriptinterpreter 106B, and a graphics renderer 106C. The multimedia engine106 also includes a sound player 106D that can handle audio data. Themultimedia engine 106 may be composed of independent hardware.Alternatively, the multimedia engine 106 may be accomplished by aprocess of a predetermined program that the foregoing CPU (not shown)executes.

The XML parser 106A has a function for parsing an XML (Extensible MarkupLanguage) document. In addition, the XML parser 106A can also parse anHTML document and an XHTML document. An HTML document and an XHTMLdocument parsed by the XML parser 106A are converted into respectiveformats that can be executed by the player decoder 160. Theprogram/script interpreter 106B analyzes a Java (registered trademark)program, an ECMA script, and so forth and converts them into respectiveformats that can be executed by the player decoder 100. The graphicsrenderer 106C decodes image data and obtains a format that can beexpanded on the sub title plane 11 and the graphics plane 12.

The multimedia engine 106 performs processes for the XML parser 106A,the program/script interpreter 106B, and the graphics renderer 106C witha work memory of a buffer 109. For example, the XML parser 106A and theprogram/script interpreter 106B use a code buffer 109 a of the buffer109. The graphics renderer 106C uses a graphics buffer 109D of thebuffer 109. The buffer 109 also includes a font buffer 109B that storesfont data used to display a character string, a tree buffer 109C thatstores the parsed result of the HTML document by the XML parser 106A ina hierarchical tree structure, a sound buffer 109E that stores audiodata used in the sound player 106D, and so forth.

When necessary, the multimedia engine 106 reads a Java program from thecode buffer 104, image data from the contents buffer 105, and so forth.Data that are stored in the code buffer 104 and the contents buffer 105can be stored in the code buffer 104 and the contents buffer 105 untilthe data become unnecessary. Thus, data stored in the code buffer 104and the contents buffer 105 can be repeatedly read and used whennecessary.

Beside the foregoing data, the multimedia engine 106 reads for examplean ECMA script stored in the code buffer 104 and executes it. Whennecessary, the multimedia engine 106 can read another ECMA script and anHTML document (or XHTML document) from the code buffer 104 and executethem in accordance with the description of the ECMA script that has beenread.

In addition, the multimedia engine 106 receives a user input from aremote control commander, a pointing device, or the like and performs apredetermined process for the user input. The user input is supplied tothe graphics decoder A 116, the graphics decoder B 117, an audio decoder118, an MPEG video decoder 120, and a system decoder 121 that will bedescribed later.

Image data processed by the graphics renderer 106C are supplied to thegraphics plane A 132 and the graphics plane B 133 through switchcircuits 130 and 131, respectively. In this example, although image datasupplied to the graphics plane A 132 and the graphics plane B 133 mayhave several formats for example the PNG format, the run length format,and the JPEG format, according to the present invention, the formatsthereof are not limited. Timing at which the image data are supplied tothe planes 132 and 133 is controlled by the multimedia engine 106.

In addition, the multimedia engine 106 supplies control signals to apresentation processor 155 that will be described later to cause it toselect one of the video 134, the sub title plane 134, the second videoplane 160, the graphics plane A 132, and the graphics plane B 133 andperform alpha-blending and so forth. Likewise, the multimedia engine 106supplies a control signal to a presentation processor 157 that will bedescribed later to cause it to control an output of an audio stream.

The multimedia engine 106 reads a Java program from a ROM (not shown) orthe like and generates object BDBasicPlayer on the multimedia engine106. The multimedia engine 106 reads a Java program from the code buffer104. When necessary, an object composed of a Java program that has beenread from the code buffer 104 registers an event listener to objectBDBasicPlayer.

As described in FIG. 15, on the multimedia engine 106, objectBDBasicPlayer transmits an event to an object composed of a Java programthat has been read from the code buffer 104 corresponding to for examplea user input. The object executes the corresponding method. ObjectBDBasicPlayer detects a status change of the player decoder 100. Whenobject BDBasicPlayer has detected a predetermined status change, theobject generates a corresponding event. The multimedia engine 106 causesa method corresponding to the event to control a drive device (notshown) and each portion of the player decoder 100 so as to perform areproduction control for the disc.

Next, the system of the input channel (2) will be described. A real timestream that is input as an MPEG 2 TS to the input terminal 202 issupplied to the PID filter 110. The PID filter 110 extracts a PID(Packet Identification) from a transport packet of the MPEG 2 TStransport stream and detects an attribute of the stream from thetransport packet. The PID filter 110 separates the input real timestream into corresponding systems for each transport packet inaccordance with the attribute of the stream.

When a transport packet is a packet in which image data of a storeobject is contained, the transport packet is temporarily stored in abuffer TBn 11A. The transport packet is read at predetermined timing andinput to the switch circuit 103 through the input terminal 103B that hasbeen selected. Thereafter, the transport packet is stored in thecontents buffer 105 through the switch circuit 103.

When the PID filter 110 has determined that the transport packetcontains sub title data in accordance with the PID, the transport packetis temporarily stored in a buffer TBn 111B and a buffer Bn 112B. Thetransport packet is read at predetermined timing and input to the switchcircuit 107 through an input terminal 107B that has been selected. Thetransport packet is supplied to the graphics decoder A 116 through theswitch circuit 107.

The graphics decoder A 116 removes header information from the suppliedtransport packet, decodes sub title data contained in the transportpacket, and obtains image data for sub titles or the like. The imagedata are input to an input terminal 130B of the switch circuit 130 andexpanded to the graphics plane A 132 through the switch circuit 130. Inaddition, the image data may be expanded to the graphics plane B 133through the switch circuit 131.

When the PID filter 110 has determined that the transport packetcontains graphics data in accordance with the PID, the transport packetis temporarily stored in a buffer TBn 111C and a buffer Bn112C. Thetransport packet is read at predetermined timing and input to the switchcircuit 108 through an input terminal 108B that has been selected. Thetransport packet is supplied to the graphics decoder B 117 through theswitch circuit 108.

The graphics decoder B 117 removes header information from the suppliedtransport packet, decodes graphics data contained in the transportpacket, and obtains graphics data. The image data are input to an inputterminal 131B of the switch circuit 131 at predetermined timing andexpanded to the graphics plane B 133 through the switch circuit 131. Inaddition, the image data may be expanded to the graphics plane A 132through the switch circuit 131.

The function of the graphics decoder A 116 is not largely different fromthe function of the graphics decoder B 117. In other words, as a model,there are two systems of graphics decoders that independently operate.Thus, it is considered that sub title data and graphics data can beindependently decoded. In a real implementation, a high speed graphicsdecoder would be used on time division basis as if two virtual systemsof graphics decoders existed.

When the PID filter 110 has determined that the transport packetcontains audio data in accordance with the PID, the transport packet istemporarily stored in a buffer TBn 111D and a buffer Bn 112D. Thetransport packet is read at predetermined timing and supplied to theaudio decoder 118. Audio data contained in the transport packet iscompression-encoded in accordance with a system based on for example theMPEG.

The audio decoder 118 also has for example a linear PCM (Pulse CodeModulation) audio decoder 119. The audio decoder 118 removes headerinformation from the input transport stream, decodes compression-encodedaudio data contained in the transport packet, and obtains linear PCMaudio data.

The linear PCM audio data that are output from the audio decoder 118 areinput to the presentation processor 157 for audio. The presentationprocessor 157 adds a predetermined effect sound and so forth to thelinear PCM audio data under the control of the multimedia engine 106.The resultant data are obtained from an output terminal 158.

When the PID filter 110 has determined that the transport packetcontains moving picture data in accordance with the PID, the transportpacket is temporarily stored in a buffer TBn 111E, a buffer MBn 113, anda buffer EBn 114, read at predetermined timing, and supplied to the MPEGvideo decoder 120. The moving picture data contained in the transportpacket has been compression-encoded in accordance with the MPEG 2system.

The MPEG video decoder 120 removes header information from the suppliedtransport packet, decodes moving picture data that has beencompression-encoded in accordance with the MPEG 2 system, and obtainsbase band moving picture data.

The moving picture data that are output from the MPEG video decoder 120are input to an input terminal 124A of a switch circuit 124. In theswitch circuit 124, moving picture data that are output from the MPEGvideo decoder 120 and moving picture data that are output from themultimedia engine 106 are selected. The moving picture data selected atpredetermined timing are input to a switch 123. The switch 123 selects avideo plane to which the moving picture data are expanded. The movingpicture data are developed to the video plane 134 or the second videoplane 160.

When the PID filter 110 has determined that the transport packetcontains system information in accordance with the PID, the transportpacket is supplied to the system decoder 121 through buffers TBn 111Fand Bsys 115. The system decoder 121 removes header information from thesupplied transport packet and extracts the system information therefrom.The system information is supplied to for example a CPU (not shown).

Image data on the graphics plane A 132 are supplied to a palette 150.The palette has 256 colors. The palette is referenced with an index. RGBdata are output. In addition, intransparency data α1 that is a parameterfor alpha-blending is extracted. The RGB data are converted into YCbCrdata by an RGB/YCbCr converting circuit 151. The YCbCr data and theintransparency data α1 are supplied to the presentation processor 155.

Image data on the graphics plane 133 are supplied to a palette 152. Thepalette has 256 colors. The palette is referenced with an index. As aresult, RGB data are output. In addition, intransparency data α2 isextracted. The RGB data are converted into YCbCr data by an RGB/YCbCrconverting circuit 153. The YCbCr data and the intransparency data α2are supplied to the presentation processor 155.

An output of the video plane 134 is supplied to the presentationprocessor 155 through an up/down converter 154. Likewise, an output ofthe second video plane 160 is supplied to the presentation processor 155through a up/down converter 161.

The up/down converter 154 is a circuit that converts the resolution ofthe image. The up/down converter 154 converts for example a HD (HighDefinition) image having a high resolution into an SD (StandardDefinition) image having a standard resolution.

The presentation processor 155 performs an alpha-blending process usingintransparency α1 of image data of the graphics plane A 132 andintransparency α2 of the graphics plane B 133. In addition, thepresentation processor 155 alternately selects outputs of the videoplane 134 and the second video plane 160 for each pixel so as toaccomplish the foregoing picture-in-picture function, the wall paperdisplay function, and so forth.

In other words, the presentation processor 155 selects the image data ofthe video plane 134 and the second video plane 160 with a switch (notshown) so as to generate one piece of image data. The image data and theimage data of the graphics plane A 132 are combined in accordance withthe intransparency α1 set to the image data of the graphics plane A 132.In addition, the image data of the graphics plane B 133 are combinedwith the image data of which the video plane and the graphics plan A 132have been combined in accordance with the intransparency α2 that hasbeen set to the image data of the graphics plane B 133. The image dataof the graphics plane B 133, the image data of the graphics plane A 132(sub title data), and the image data of which the image data of thevideo plane 134 and the second video plane 160 have been combined areobtained from an output terminal 156.

The presentation processor 155 can perform an effect process for imagedata in real time.

In the foregoing description, each portion of the player decoder 100 iscomposed of hardware. However, the present invention is not limited tosuch an example. For instance, the player decoder 100 can beaccomplished by a process of software. In this case, the player decoder100 can be operated on a computer device. Alternatively, the playerdecoder 100 may be accomplished by a combination of hardware andsoftware. For example, the audio decoder 118 and the MPEG video decoder120 may be composed of hardware. The rest of the player decoder 100 maybe composed of software.

A program that causes the computer device to execute the p layer decoder100 that is composed of only software or a combination of hardware andsoftware is recorded on a recording medium for example a CD-ROM (CompactDisc-Read Only Memory) and supplied therewith. The CD-ROM is loaded intoa CD-ROM drive of the computer device. The program recorded on theCD-ROM is installed to the computer device. As a result, the foregoingprocess can be executed on the computer device. Since the structure ofthe computer device is well known, the description thereof will beomitted.

2. Second Embodiment of Present Invention

Next, a second embodiment of the present invention will be described.According to the second embodiment, a player model is described with ascript language called the ECMA script. The ECMA script is a crossplatform script language prescribed by ECMA (European ComputerManufacturers Association). The ECMA script is based on JavaScript(registered trademark). The ECMA script has a close affinity with anHTML document. In addition, the ECMA script is capable of definingoriginal objects. Thus, the ECMA script can be suitably used for aplayer model according to the present invention.

As described in FIG. 28A, FIG. 28B, and FIG. 28C, since the multimediaengine 106 in the player decoder 100 can analyze and execute the ECMAscript, the player decoder 100 can be used in the second embodiment ofthe present invention.

According to the second embodiment of the present invention, thestandard using a script language based on the ECMA script is called theUMD (Universal Media Disc, registered trademark) video standard. Thescript part of the UMD video standard is called the UMD video scriptstandard.

2-1. About UMD Video Standard

First, for easy understanding, the UMD video standard applicable to thesecond embodiment of the present invention will be described. FIG. 29shows a layer structure of the UMD video standard. The layer structureshown in FIG. 29 corresponds to the structure shown in FIG. 1 accordingto the first embodiment. In the UMD video standard, three layers, ascript layer, a play list layer, and a clip layer, are defined.Corresponding to this structure, streams are managed.

In the UMD video standard, video data, audio data, and sub title datathat have been digitally encoded are treated as an MPEG 2 (MovingPictures Experts Group 2) stream of which they have been multiplexed asMPEG 2 elementary streams. An MPEG 2 stream of which the video, audio,and sub title elementary streams have been multiplexed is called a clipAV stream. A clip AV stream is stored in a clip AV stream file. Whenevera clip AV stream file is recorded, a clip information file is alsocreated in the relation of one to one. A set of a clip information fileand a corresponding clip AV stream file is called a clip.

A clip is a recording unit of data that are recorded on the disc. Thereproduction order of clips is managed in the play list layer that is anupper layer of clips. The play list layer that is a layer thatdesignates the reproduction path of clips, contains one or a pluralityof play lists. A play list is composed of a set of play items. A playitem contains a set of an in point and an out point that represent thereproduction range of a clip. With play items, clips can be reproducedin any order. Play items can designate the same clip. An in point and anout point of a clip AV stream file are designated with time stamps(times in a clip). A time stamp is converted into a byte position of theclip AV stream file with information of the clip information file.

A play list has a structure for which play items that represent all orpart of clips are reproduced in the order. With only a play list,branches of the reproduction order and interactivity with the usercannot be accomplished.

The script layer is a layer that is composed of the UMD video script,which is an extension of the ECMA script as a language. The UMD videoscript is a ECMA based script that is extended for an original functionof the UMD video.

The script layer is an upper layer of the play list layer. The scriptlayer is composed of play list reproduction commands and player setcommands. With commands of the script layer, play list reproductionssuch as a language selection of which a stream corresponding to adesired language is selected from several streams and conditionalbranches of which play lists to be reproduced are selected correspondingto predetermined conditions can be accomplished. An example of anapplication that performs a play list reproduction having conditionalbranches is a multi-story. This script layer provides an interactivefunction to the user.

2-2. About Player Model Based on UMD Video Standard

Next, a model of a reproducing apparatus (player) that reproduces dataon the basis of the UMD video standard, namely the player model, will bedescribed. First, the player reads a script program, a play list, and aclip information file from the disc. Thereafter, the player reads a clipAV stream file from the disc in accordance with the reproduction orderdescribed in the script program, the play list, and the clip informationfile and reproduces video data, audio data, and sub title data from theclip AV file.

In the language specification of the script program, a functional blockthat reproduces a play list is implemented as an object of the scriptprogram. In the UMD video standard, an object that reproduces a playlist is referred to as the movie player object. Play list reproductioncommands and player set commands are methods of the movie player object.The movie player object is controlled with methods of the script layer.At this point, a function that allows the movie player object to informthe script layer of a status change, a reproduction position, and soforth is required. This means that the movie player object issues anevent to the script program. A process corresponding to the event isdescribed as an event handler.

Thus, with a model of which information is transferred from the movieplayer object to the script program using events and the script programcontrols the movie player object using methods, the reproduction of aclip AV stream can be controlled by the script program.

FIG. 30 schematically shows an example of the player model according tothe second embodiment of the present invention. A movie player 300 is amodule that reproduces video data, audio data, and sub title data inaccordance with the UMD video standard. The movie player object is anobject of a script program so that the script program operates a movieobject. In other words, a movie player object is a script program thataccomplishes the function of the movie player.

Since it is considered that the movie player 300 and the movie playerobject represent substantially the same object, hereinafter they aredenoted by the same reference numeral.

In FIG. 30, the movie player 300 reads, decodes, and displays a clip AVstream file in accordance with a method of a lower layer (a nativeimplementation platform 301) and a method of the script layer 302 as anupper layer on the basis of a play list and a clip information database.

The interior of the movie player 300 depends on the implementation of aUMD video player that reproduces the UMD video. A script layer 302provides an API (Application Programming Interface) such as a method anda property as an object that is a black box. In this example, the UMDvideo player represents a real device that implements a movie player.All UMD video players implement a movie player that complies with theUMD video standard and that has reproduction compatibility.

As shown in FIG. 30, the movie player object 300 has three input/outputpaths that are a path that receives a control command 311 from thenative implementation platform 301, a path that informs the script layer302 of an event 312, and a path that receives a method 313 from thescript layer 302.

The control command 311 is a command that controls the operation of themovie player object 300 received from the native implementation platform301. The native implementation platform 301 is a portion specific to adevice as a real UMD video player and an interface with the movie player300. The event 312 is a script event that the movie player 300 sends tothe script layer 302. The method 313 is a method that the script programof the script layer 302 sends to the movie player 300.

The movie player object 300 has a database 320 for play lists and clipinformation in accordance with the UMD video standard. The movie playerobject 300 masks a user input 310 and converts a time designatedreproduction position into a byte position of a clip AV stream with thedatabase 320.

A playback module 321 of the movie player 300 decodes a clip AV streamas an MPEG 2 PS (Program Stream) in which video data, audio data, andsub title data have been multiplexed. The playback module 321 has threestatuses that are play, stop, and pause. The playback module 321 changesoperates in one of these three statuses in accordance with a controlcommand and a method (see FIG. 31).

The script layer 302 is a layer in which a script program is executed onthe basis of the UMD video script standard, the movie player object 300is controlled, and a screen is displayed. The script layer 302accomplishes a scenario that the content provider side intended tocreate. The script layer 302 issues the method 313 to the movie playerobject 300 and receives the event 312 from the movie player object 300.The script layer 302 exchanges with the native implementation platform301 a key event 314 corresponding to a user input 310 and a method 315that causes the native implementation platform 301 to display a screen.

For example, buttons that appear on the menu screen are drawn by thenative implementation platform 301 corresponding to the method 315 thatis transferred from the script program of the script layer 302 to thenative implementation platform 301. When the user selects a button onthe menu screen, the native implementation platform 301 informs thescript layer 302 of the key event 314 corresponding to the user input310. The script program of the script layer 302 performs a process forthe user input 310 corresponding to the key event 314.

The script program and data such as image data and sound data used inthe script file are recorded as a file to the disc. This filecorresponds to file scenario.hdmv shown in FIG. 25A and FIG. 25B.

Thus, the movie player 300 controls decoding and displaying processesfor video data, audio data, and sub title data. On the other hand, thescript layer 302 controls allocating and displaying processes for partimages such as buttons that compose the GUI (Graphical User Interface)and performs a process against a selecting process for GUI parts.

The native implementation platform 301 is a platform on which the movieplayer object 300 and a script program operate. When the real UMD videoplayer is composed of hardware, the native implementation platform 301is specifically implemented as hardware so that the nativeimplementation platform 301 intermediates between the hardware and theplayer model.

For example, the native implementation platform 301 receives the userinput 310 from the user and determines whether the received user input310 is a command to the movie player 300 or a command to a button thatthe script layer 302 draws and displays. When the native implementationplatform 301 has determined that the user input 310 is a command to themovie player 300, the native implementation platform 301 converts theuser input 310 into the control command 311 that is an internal controlcommand of the movie player 300 and issues a control command to themovie player 300. On the other hand, when the native implementationplatform 301 has determined that the user input 310 is a command for aGUI part that the script layer 302 draws and displays, the nativeimplementation platform 301 informs the script layer 302 of the keyevent 314 corresponding to the user input 310.

Next, the movie player 300 will be described in detail. FIG. 31 shows aninternal structure of an example of the movie player 300. As describedabove, the movie player 300 is composed of the database 320 and theplayback module 321. The database 320 is an area for information of playlists that are read from the disc and information of clips, namely clipinformation.

The playback module 321 is composed of a decoder engine 322 and aproperty 323 that is a value representing the stratus of the playbackmodule 321. Like a language code, the property 323 is composed of twotypes of a property 323A (read-only parameter) whose value depends onthe initial setting of the movie player 300 and a property 323B (playerstatus) whose value depends on the status of the playback module 321.

The property 323A whose value depends on the initial setting is set by anative system, for example a real device. The property 323A does notvary with a play list, clip information, or a script program. Theproperty 323A can be read from a script program. On the other hand, theproperty 323B that represents the status of the playback module 321 canbe read from a script program. The property 323B can be written from apart of script programs.

In the operation model, it is assumed that a play list and clipinformation is pre-loaded before a clip AV stream is reproduced. Anotherimplementation model may be used as long as the operations for the movieplayer model can be accomplished.

The movie player object 300 reproduces a designated play listcorresponding to a command received from the script layer 302 or thenative implementation platform 301. For example, the movie player 300references the database 320 and obtains the reproduction position of aclip AV stream corresponding to the designated play list as a byteposition. The decoder engine 322 of the playback module 321 controls thedecoding process for the clip AV stream corresponding to thereproduction position information.

As shown in FIG. 32, the movie player 300 has three statuses, which areplay, stop, and pause, corresponding to the reproduction statuses of aplay list. The play status represents that the movie player 300 isreproducing a play list and a time is elapsing. In addition, normalreproduction, the play status includes variable speed reproductions suchas 2×-speed reproduction and ½×-speed reproduction, and fast forward andfast rewind. The pause status represents that time axis stops while themovie player 300 is reproducing a play list. The so-called stepreproduction status represents that the movie player 300 forwardly orbackwardly reproduces a play list for each frame. The stop statusrepresents that the video player 300 does not reproduce a play list.

The statuses of the movie player 300 change corresponding to statuschanges among play, pause, and stop of the decoder engine 322 of themovie player 300. The value of the property 323B is updatedcorresponding to the status change of the decoder engine 322.

Resume information represents the status immediately before the stopstatus takes place. When the movie player 300 decodes a play list andbecomes the play status, if the movie player 300 becomes the stopstatus, the resume information represents the status immediately beforethe stop status takes place. The resume information can be stored in anon-volatile memory that the player has as hardware so that each titleof the disc can be identified.

2-3. About Event Model of Movie Player

Next, an event model of the movie player 300 will be described. Themovie player 300 generates various events in the play status in whichthe movie player 300 reproduces a play list. This event causes a processprogram described in a script to be executed. This process program iscalled an event handler. The event handler is a method called when anevent takes place. When this event takes place, a program executionmodel starts executing a process program. This program execution modelis called an event driven model. According to the second embodiment ofthe present invention, the script program controls the operation of themovie player object 300 with an event handler group.

FIG. 33 schematically shows an event model of the movie player 300according to the second embodiment of the present invention. In FIG. 33,event handlers onEventA( ), onEventB( ), and onEvent( ) are interfaces.The contents of these event handlers are described in script. Thecontents of the event handlers are created and implemented by thecontent creator side. In the UMD video script standard, each event ofwhich the movie player object 300 informs the script program is providedwith an event handler. In the example shown in FIG. 33, a processprogram that is executed when event A takes place is event handleronEventA( ). Likewise, with respect to event B and event C, when event Btakes place, event handler onEventB( ) is executed. When event C takesplace, event handler onEventC( ) is executed.

Since an event handler called when an event takes place is selected onthe system side, the content creator side does not need to describe inthe script program a process that determines an event that takes place.

The event model according to the second embodiment is simpler than theevent listener model according to the first embodiment described in FIG.15 because the latter needs processes that register events and deleteregistered events. On the other hand, in a model that calls one methodprocessEvent( ) regardless of what event takes place (see FIG. 20), itis necessary to describe in method processEvent( ) pre-processes thatknow what event takes place and select a process routine for an eventthat takes place. Since method processEvent( ) should be implemented bythe content creator side, even if the model is simple, the contentcreator side needs to laboriously create the disc. In addition, wheneveran event takes place, one large process program (method) is called.Thus, a large memory space would be used and the execution speed wouldbecome slow. Thus, since the model according to the second embodiment ofthe present invention provides each event with a process program (eventhandler), with respect to this point, the model of the second embodimentis superior to that of the first embodiment.

2-4. About Movie Player Object 300

Next, external specifications of the movie player object 300 will bedescribed. Generally, an object defined in a language corresponding tothe ECMA script language specification has a property and a method. Themovie player object 300 according to the second embodiment of thepresent invention has a property and a method as described in FIG. 31and FIG. 32. A property can be directly read and written by designatingpredetermined object name and property name. In addition, with methodsetXXX( ) (where “XXX” represents a designated property name) that setsa property value and method getXXX( ) that reads a property value, aproperty of another object may be read and written by these methods.

For properties and methods of the movie player 300 according to thesecond embodiment of the present invention, the same specifications asthose according to the first embodiment described in FIG. 7 to FIG. 12can be applied. In other words, according to the second embodiment ofthe present invention, specifications (API) between the script programof the script layer 302 and the movie player object 300, namely themethod 313 described in FIG. 30, can be thought to be the same classdefined in Java of the first embodiment of the present invention.

As was described in FIG. 30, the user input 310 is received first by thenative implementation platform 301. In other words, the nativeimplementation platform 301 receives the key input as the user input 310from the user. The native implementation platform 301 determines whetherthe user input 310 is a command to the movie player 300 or an event tothe script program of the script layer 302. Corresponding to thedetermined result, the native implementation platform 301 generates thecontrol command 311 or the key event 314 and informs the correspondingupper layer (the movie player 300 or the script layer 302) thereof.

The user input 310 is a key input that was described in FIG. 24, FIG.25A, and FIG. 25B. Roles of the functions corresponding to key inputsshown in FIG. 24 are different from those shown in FIG. 25A and FIG.25B. Thus, the native implementation platform 301 needs to select adestination that is informed of the user input.

The key inputs shown in FIG. 24 cause the movie player 300 to reproducevideo data, audio data, and sub title data. When the nativeimplementation platform 301 receives a key input shown in FIG. 24 as theuser input 310, the native implementation platform 301 converts thereceived key input into a command described in FIG. 21A, FIG. 21B, FIG.21C, and FIG. 21D. The movie player 300 is informed of the convertedcommand as the control command 311. In other words, user input commandsdescribed in FIG. 21A, FIG. 21B, FIG. 21C, and FIG. 21D correspond tothe control command 311 shown in FIG. 30.

On the other hand, the key inputs shown in FIG. 25A and FIG. 25B are theuser input 310 to the GUI. When the native implementation platform 301receives a key input shown in FIG. 25A and FIG. 25B as the user input310, the native implementation platform 301 converts the received keyinput into the key event 314 and informs the script layer 302 of the keyevent 314.

FIG. 25A and FIG. 25B also show key inputs with respect to streamselections that are key VK_ANGLE, key VK_PRESENTATION_GRAPHICS, and keyVK_AUDIO. These key inputs are accomplished by methods of a scriptprogram to the movie player 300. Thus, they are key inputs of which thescript layer 302 should be informed.

2-5. About Event Handling by Movie Player Object 300

According to the first embodiment using the Java language, objectBDBasicPlayer has the events shown in FIG. 14A, FIG. 14B, and FIG. 14C.On the basis of the event listener model shown in FIG. 15, listeners areregistered and unregistered with the methods shown in FIG. 16A and FIG.16B. In the event listener model according to the first embodiment,while a program is being executed, a listener can be dynamicallyregistered and unregistered. A response process to an event can bechanged while a program is being executed. Thus, programming that has ahigher degree of freedom and a higher advanced function can beaccomplished than the related art.

On the other hand, in the script language based on the ECMA scriptaccording to the second embodiment of the present invention, a processprogram that has been prepared corresponding to an event that takesplace is called without need to register and unregister listeners. Aninterface corresponding to a listener according to the first embodimentis event handlers of the movie player 300. In an event handler model,methods with respect to registration of listeners shown in FIG. 16A andFIG. 16B are not necessary.

According to the second embodiment of the present invention, examples ofevent handlers in FIG. 34A and FIG. 34B are provided corresponding toevents. Event handler names have a prefix of “on.” The examples of theevent handles shown in FIG. 34A and FIG. 34B correspond to events shownin FIG. 14A, FIG. 14B, and FIG. 14C of the first embodiment.

Event handler onTimerFired( ) corresponds to an event that takes placewhen the value of the count down timer of the movie player 300 becomes“0” or when the value of the count up timer becomes a predeterminedvalue. Thus, a process can be accomplished at predetermined timing.

Event handler onPlayStopped( ) corresponds to an event that takes placewhen the reproduction is stopped in the movie player 300. Event handleronPlayStilled( ) corresponds to an event that takes place when thereproduction is paused in the movie player 300. Event handleronPlayStarted( ) corresponds to an even that takes place when thereproduction is started in the movie player 300. Event handleronPlayRepeated( ) corresponds to an event that takes place when thebeginning of predetermined data is detected in the repeat reproductionof the movie player 300. Thus, a process corresponding to the status ofthe decoder engine 322 can be accomplished.

Event handler onSPDisplayStatusChanged( ) corresponds to an event thattakes place when the display or non-display status of a stream of subtitle (sub picture) data is changed in the movie player 300. Eventhandler onSelectedAudioChanged( ) corresponds to an event that takesplace when an audio stream that is being reproduced is changed in themovie player 300. Event handler onVideoStopped( ) corresponds to anevent that takes place when a video stream that is being reproduced ischanged in the movie player 300. Thus, a process corresponding to achange of a stream that is being reproduced can be accomplished.

Event handler onPlayListStarted( ) corresponds to an event that takesplace when the beginning of a play list is detected in the movie player300. Event handler onPlayListEnded corresponds to an event that takesplace when the end of a play list is detected in the movie player 300.Event handler onPlayItemStarted( ) corresponds to an event that takesplace when the beginning of a play item is detected in the movie player300. Event handler onPlayItemEnded corresponds to an event that takesplace when the end of a play item is detected in the movie player 300.Thus, processes corresponding to the start and end of the reproductionfor play lists and play items, such as a continuous reproduction forplay lists and play items, can be accomplished.

Event handler onMarkEncountered( ) corresponds to an event that takesplace when a mark is detected from a play list while the play list isbeing reproduced in the movie player 300. When a mark that represents atime is preset to a play list, a branch process for a play list that isbeing reproduced can be accomplished.

Contents of these event handlers are described using a descriptivelanguage by the content creator side. Thus, when an event takes place,an operation that the content provider side intended can beaccomplished.

1. A reproducing apparatus that reproduces content data hierarchicallyrecorded on a disc-shaped recording medium, comprising: a player objectthat generates an event corresponding to a predetermined change; and aprogram object that is formed above said player object and that iscapable of describing a process corresponding to the event that takesplace, wherein said player object controls a reproduction process forcontent data hierarchically recorded on the disc-shaped recording mediumwith a process corresponding to the event described in said programobject.
 2. The reproducing apparatus as set forth in claim 1, whereinsaid program object is reproduced from the recording medium.
 3. Thereproducing apparatus as set forth in claim 1, wherein when said programobject registers a process corresponding to the event that takes placeto said player object, said player object executes the processcorresponding to the event that takes place.
 4. The reproducingapparatus as set forth in claim 3, wherein while the content data arebeing reproduced, the process is capable of being registered.
 5. Thereproducing apparatus as set forth in claim 3, wherein while the contentdata is being reproduced, the process that has been registered iscapable of being deregistered.
 6. The reproducing apparatus as set forthin claim 1, wherein the predetermined change is a change that takesplace while the content data is being reproduced.
 7. The reproducingapparatus as set forth in claim 6, wherein the predetermined change isdetection of a mark that represents a time that is set in the contentdata.
 8. The reproducing apparatus as set forth in claim 1, furthercomprising: user input means for receiving a user input and informingsaid player object of the user input, wherein the predetermined changeis based on an input to said user input means.
 9. The reproducingapparatus as set forth in claim 8, wherein a virtual key is allocated toa physical key of said user input means by said program object, thepredetermined change being an input to the virtual key.
 10. Thereproducing apparatus as set forth in claim 1, wherein the predeterminedchange is a status change of a player.
 11. The reproducing apparatus asset forth in claim 1, wherein one or a plurality of events take placecorresponding to the change based on the event.
 12. The reproducingapparatus as set forth in claim 1, wherein the reproduction processincludes a reproduction control that reproduces the content data fromthe disc-shaped recording medium and a process for the content datareproduced from the disc-shaped recording medium.
 13. A reproducingmethod of reproducing content data hierarchically recorded on adisc-shaped recording medium, comprising the step of: causing a playerobject that generates an event corresponding to a predetermined changeto control a reproduction process for content data hierarchicallyrecorded on the disc-shaped recording medium with a processcorresponding to the event described in a program object that is formedabove the player object and that is capable of describing a processcorresponding to the event that takes place.
 14. A reproducing programthat causes a computer device to execute a reproducing method ofreproducing content data hierarchically recorded on a disc-shapedrecording medium, comprising the step of: causing a player object thatgenerates an event corresponding to a predetermined change to control areproduction process for content data hierarchically recorded on thedisc-shaped recording medium with a process corresponding to the eventdescribed in a program object that is formed above the player object andthat is capable of describing a process corresponding to the event thattakes place.
 15. A computer readable recording medium on which areproducing program has been recorded, the reproducing program causing acomputer device to execute a reproducing method of reproducing contentdata hierarchically recorded on a disc-shaped recording medium,comprising the step of: causing a player object that generates an eventcorresponding to a predetermined change to control a reproductionprocess for content data hierarchically recorded on the disc-shapedrecording medium with a process corresponding to the event described ina program object that is formed above the player object and that iscapable of describing a process corresponding to the event that takesplace.
 16. A disc-shaped recording medium on which content data havebeen hierarchically recorded, at least content data and a program objectthat is capable of describing a process corresponding to an event thattakes place being recorded on the recording medium, a reproductionprocess for the content data being controlled with a processcorresponding to the event described in the program object by a playerobject that generates an event corresponding to a predetermined changeand formed below the program object.
 17. The recording medium as setforth in claim 16, wherein when the program object registers a processcorresponding to the event that takes place to the player object, theplayer object executes the process corresponding to the event that takesplace.
 18. The recording medium as set forth in claim 17, wherein whilethe content data are being reproduced, the program object is capable ofregistering the process.
 19. The recording medium as set forth in claim17, wherein while the content data is being reproduced, the programobject is capable of deregistering the process that has been registered.20. The recording medium as set forth in claim 16, wherein thepredetermined change is a change that takes place while the content datais being reproduced.
 21. The recording medium as set forth in claim 20,wherein the predetermined change is based on a mark that represents atime that is set in the content data.
 22. The recording medium as setforth in claim 16, wherein the predetermined change is based on an inputto user input means.
 23. The recording medium as set forth in claim 22,wherein the program object assigns to a physical key of the user inputmeans a virtual key that causes a predetermined change to take placecorresponding to an input.
 24. The recording medium as set forth inclaim 16, wherein the predetermined change is a status change of aplayer.
 25. The recording medium as set forth in claim 16, wherein oneor a plurality of events take place corresponding to the change based onthe event.
 26. The recording medium as set forth in claim 16, whereinthe reproduction process includes a reproduction control that reproducesthe content data and a process for the content data that have beenreproduced.